﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Midapex.Net.Ftp;
using Midapex.Net;

namespace DukeyFtpServer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //try
            //{
              

                using (FtpServer server = new FtpServer())
                {
                    //Console.WriteLine("测试帐号:anonymous(匿名登陆，具有读权限), ftp(密码:ftp,具有读写权限)");

                    /*
                     * 服务器的最大连接数
                     */ 
                    server.WelcomeMessage = "fdsfd";
                    server.Capacity = 1000;
                    
                    /*
                     * 连接超时时间
                     */
                    server.HeartBeatPeriod = 120000;  //120秒

                    /*
                     * 创建一个使用FTP的用户，
                     */
                    FtpUser user = new FtpUser("ftp");
                    user.Password = "ftp";
                    user.AllowWrite = true;
                    user.HomeDir = Environment.CurrentDirectory;

                    /*
                     * 限制该帐号的用户的连接服务器的最大连接数
                     * 也就是限制该使用该帐号的FTP同时连接服务器的数量。
                     */
                    user.MaxConnectionCount = 2;

                    /*
                     * 限制用户的最大上传文件为20M，超过这个值上传文件会失败。
                     * 默认不限制该值，可以传输大文件。
                     */
                    user.MaxUploadFileLength = 1024 * 1024 * 20;
                    server.AddUser(user);

                    //把当前目录作为匿名用户的目录，测试目的(必须指定)
                    server.AnonymousUser.HomeDir = Environment.CurrentDirectory;

                    server.Start();

                }
            //}
            //catch (System.Exception ex)
            //{
            //    NetDebuger.PrintErrorMessage("FATAL ERROR:" + ex.Message);
            //}
        }
    }
}
